stage3day2section3

Section3:過学習

テスト誤差と訓練誤差で学習曲線が乖離すること。

特定のサンプルに対して特化して学習をしてしまっている状態。 試験でいうと、模試の成績はいいけど本番には点が取れない状態。

ニューラルネットが大きいのに入力値が小さいときに発生する。

原因としては、 ・パラメータの数が多い、 ・パラメータの値が適切でない、 ・ノードの数が多い  等がある。

対策としては、正則化がある。

正則化とはネットワークの自由度を制約すること。

・L1正則化、L2正則化

En(w)+1p λxpE_n(w)+\frac{1}{p}\ λ||x||_p

xp=(x1p+...+xnp)1p||x||_p=(|x_1|p+...+|x_n|^p)^\frac1p

λは減衰させるスケーリングのための値、スーパーパラメーター

誤差関数にpノルムを加える

p=1ならL1正則化 ラッソ回帰  マンハッタン距離

p=2ならL2正則化 リッジ回帰  ユークリッド距離

・ドロップアウト

ランダムにノードを削除して学習させる

→データのバリエーションが増える

確認テスト

       左がL2正則化            右がL1正則化

上記のグルグルは、3Dグラフのある場所を切り取って誤差関数の等高線。

左の○とか□は、正則化項の等高線。

3Dを真上から見た図

その2つの交わっている部分が、両方合わせたもっとも低い場所。

L1の場合は、1つの重みに対して、ゼロのポイントを探してくれる。

(x軸がゼロになっている)

実装演習 

2_5_overfiting.ipynb

*正答率トレーニング出力部分は長いのでトリムしました。